#ifndef CONTROLADOR_H
#define CONTROLADOR_H

#include "../definiciones_globales.h"
#include "../Entidades/Entidad.h"
#include "../Core/Callback/Callback.h"
#include "../Core/Core.h"

enum acciones_t { TOCAR=0, SOLTAR };
enum direcciones_t { ARRIBA=0, ABAJO, DERECHA, IZQUIERDA };

class ControladorDeJugador
{
	public:
		ControladorDeJugador(Entidad* _modelo);
		~ControladorDeJugador();
	private:
		Entidad* modelo;
		bool tecla_activa[4];
		Callback<ControladorDeJugador> callbacks[2][4];
		Callback<ControladorDeJugador> callback_actualizar;

	/* funciones auxiliares */

		void Actualizar();

		void AlTocarArriba();
		void AlTocarAbajo();
		void AlTocarDerecha();
		void AlTocarIzquierda();
		
		void AlSoltarArriba();
		void AlSoltarAbajo();
		void AlSoltarDerecha();
		void AlSoltarIzquierda();
};

#endif
